package entidades;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Version;

import enumeraciones.DistanciaNasoPupilarEnum;
import enumeraciones.DistanciaPupilarEnum;
import enumeraciones.FiltroEnum;
import enumeraciones.UsoEnum;


/**
 * The persistent class for the t_prescripcion database table.
 * 
 */
@Entity
@Table(name="t_prescripcion")
public class TPrescripcion  implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@SequenceGenerator(name="T_PRESCRIPCION_IDPRESCRIPCION_GENERATOR", sequenceName="T_PRESCRIPCION_ID_PRESCRIPCION_SEQ", allocationSize=1)
	@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="T_PRESCRIPCION_IDPRESCRIPCION_GENERATOR")
	@Column(name="id_prescripcion")
	private Integer idPrescripcion;

	@Column(name="des_alt_bifocal")
	private String desAltBifocal;

	@Column(name="des_alt_prog_vl")
	private String desAltProgVl;

	@Column(name="des_alt_prog_vp")
	private String desAltProgVp;

	@Column(name="des_color")
	private String desColor;

	@Column(name="des_diseno")
	private String desDiseno;

	@Column(name="des_dnp")
	private String desDnp;

	@Column(name="des_dp")
	private String desDp;

	@Column(name="des_filtro")
	@Enumerated (value = EnumType.STRING)
	private FiltroEnum desFiltro;

	@Column(name="des_filtro2")
	@Enumerated (value = EnumType.STRING)
	private FiltroEnum desFiltro2;
	
	//bi-directional many-to-one association to TTipLente
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="id_tip_lente")
	private TTipLente tTipLente;
	
	//bi-directional many-to-one association to TTipLente
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="id_tipo_material")
	private TTipoMaterial tTipoMaterial;
		
	@Column(name="des_marca")
	private String desMarca;

	@Column(name="des_montura")
	private String desMontura;

	@Column(name="des_observaciones")
	private String desObservaciones;

	@Column(name="num_add_od_avl")
	private String numAddOdAvl;

	@Column(name="num_add_od_avp")
	private String numAddOdAvp;

	@Column(name="num_add_od_cyl")
	private String numAddOdCyl;

	@Column(name="num_add_od_eje")
	private String numAddOdEje;

	@Column(name="num_add_od_sph")
	private String numAddOdSph;

	@Column(name="num_add_oi_avl")
	private String numAddOiAvl;

	@Column(name="num_add_oi_avp")
	private String numAddOiAvp;

	@Column(name="num_add_oi_cyl")
	private String numAddOiCyl;

	@Column(name="num_add_oi_eje")
	private String numAddOiEje;

	@Column(name="num_add_oi_sph")
	private String numAddOiSph;

	@Column(name="num_vp_od_avl")
	private String numVpOdAvl;

	@Column(name="num_vp_od_avp")
	private String numVpOdAvp;

	@Column(name="num_vp_od_cyl")
	private String numVpOdCyl;

	@Column(name="num_vp_od_eje")
	private String numVpOdEje;

	@Column(name="num_vp_od_sph")
	private String numVpOdSph;

	@Column(name="num_vp_oi_avl")
	private String numVpOiAvl;

	@Column(name="num_vp_oi_avp")
	private String numVpOiAvp;

	@Column(name="num_vp_oi_cyl")
	private String numVpOiCyl;

	@Column(name="num_vp_oi_eje")
	private String numVpOiEje;

	@Column(name="num_vp_oi_sph")
	private String numVpOiSph;
	
	@Column(name="des_uso")
	@Enumerated (value = EnumType.STRING)
	private UsoEnum uso;

	@Column(name="des_ref")
	private String desRef;
	
	@Column(name="user_creacion")
	private String userCreacion;

	@Column(name="user_modificacion")
	private String userModificacion;

	@Temporal( TemporalType.TIMESTAMP)
	@Column(name="fecha_creacion")
	private Date fechaCreacion;
	
	@Temporal( TemporalType.TIMESTAMP)
	@Column(name="fecha_modificacion")
	private Date fechaModificacion;
	
	@Column(name="dist_naso_pup")
	@Enumerated (value = EnumType.STRING)
	private DistanciaNasoPupilarEnum distNasoPupilar;
	
	@Column(name="dist_pupilar")
	@Enumerated (value = EnumType.STRING)
	private DistanciaPupilarEnum distPupilar;
	
	//bi-directional many-to-one association to TControl
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="id_control")
	private TControl TControl;

	@Version
	private Integer version;
	
    public TPrescripcion() {
    }

	public Integer getIdPrescripcion() {
		return this.idPrescripcion;
	}

	public void setIdPrescripcion(Integer idPrescripcion) {
		this.idPrescripcion = idPrescripcion;
	}

	public String getDesAltBifocal() {
		return this.desAltBifocal;
	}

	public void setDesAltBifocal(String desAltBifocal) {
		this.desAltBifocal = desAltBifocal;
	}

	public String getDesAltProgVl() {
		return this.desAltProgVl;
	}

	public void setDesAltProgVl(String desAltProgVl) {
		this.desAltProgVl = desAltProgVl;
	}

	public String getDesAltProgVp() {
		return this.desAltProgVp;
	}

	public void setDesAltProgVp(String desAltProgVp) {
		this.desAltProgVp = desAltProgVp;
	}

	public String getDesColor() {
		return this.desColor;
	}

	public void setDesColor(String desColor) {
		this.desColor = desColor;
	}

	public String getDesDiseno() {
		return this.desDiseno;
	}

	public void setDesDiseno(String desDiseno) {
		this.desDiseno = desDiseno;
	}

	public String getDesDnp() {
		return this.desDnp;
	}

	public void setDesDnp(String desDnp) {
		this.desDnp = desDnp;
	}

	public String getDesDp() {
		return this.desDp;
	}

	public void setDesDp(String desDp) {
		this.desDp = desDp;
	}

	public String getDesMarca() {
		return this.desMarca;
	}

	public void setDesMarca(String desMarca) {
		this.desMarca = desMarca;
	}

	public String getDesMontura() {
		return this.desMontura;
	}

	public void setDesMontura(String desMontura) {
		this.desMontura = desMontura;
	}

	public String getDesObservaciones() {
		return this.desObservaciones;
	}

	public void setDesObservaciones(String desObservaciones) {
		this.desObservaciones = desObservaciones;
	}

	public TControl getTControl() {
		return TControl;
	}

	public void setTControl(TControl tControl) {
		TControl = tControl;
	}

	public TTipLente gettTipLente() {
		return tTipLente;
	}

	public void settTipLente(TTipLente tTipLente) {
		this.tTipLente = tTipLente;
	}

	public TTipoMaterial gettTipoMaterial() {
		return tTipoMaterial;
	}

	public void settTipoMaterial(TTipoMaterial tTipoMaterial) {
		this.tTipoMaterial = tTipoMaterial;
	}

	public UsoEnum getUso() {
		return uso;
	}

	public void setUso(UsoEnum uso) {
		this.uso = uso;
	}

	public String getDesRef() {
		return desRef;
	}

	public void setDesRef(String desRef) {
		this.desRef = desRef;
	}

	public void setDesFiltro(FiltroEnum desFiltro) {
		this.desFiltro = desFiltro;
	}

	public FiltroEnum getDesFiltro() {
		return desFiltro;
	}

	public DistanciaNasoPupilarEnum getDistNasoPupilar() {
		return distNasoPupilar;
	}

	public void setDistNasoPupilar(DistanciaNasoPupilarEnum distNasoPupilar) {
		this.distNasoPupilar = distNasoPupilar;
	}

	public DistanciaPupilarEnum getDistPupilar() {
		return distPupilar;
	}

	public void setDistPupilar(DistanciaPupilarEnum distPupilar) {
		this.distPupilar = distPupilar;
	}

	public String getNumAddOdCyl() {
		return numAddOdCyl;
	}

	public void setNumAddOdCyl(String numAddOdCyl) {
		this.numAddOdCyl = numAddOdCyl;
	}

	public String getNumAddOdEje() {
		return numAddOdEje;
	}

	public void setNumAddOdEje(String numAddOdEje) {
		this.numAddOdEje = numAddOdEje;
	}

	public String getNumAddOdSph() {
		return numAddOdSph;
	}

	public void setNumAddOdSph(String numAddOdSph) {
		this.numAddOdSph = numAddOdSph;
	}

	public String getNumAddOiCyl() {
		return numAddOiCyl;
	}

	public void setNumAddOiCyl(String numAddOiCyl) {
		this.numAddOiCyl = numAddOiCyl;
	}

	public String getNumAddOiEje() {
		return numAddOiEje;
	}

	public void setNumAddOiEje(String numAddOiEje) {
		this.numAddOiEje = numAddOiEje;
	}

	public String getNumAddOiSph() {
		return numAddOiSph;
	}

	public void setNumAddOiSph(String numAddOiSph) {
		this.numAddOiSph = numAddOiSph;
	}

	public String getNumVpOdCyl() {
		return numVpOdCyl;
	}

	public void setNumVpOdCyl(String numVpOdCyl) {
		this.numVpOdCyl = numVpOdCyl;
	}

	public String getNumVpOdEje() {
		return numVpOdEje;
	}

	public void setNumVpOdEje(String numVpOdEje) {
		this.numVpOdEje = numVpOdEje;
	}

	public String getNumVpOdSph() {
		return numVpOdSph;
	}

	public void setNumVpOdSph(String numVpOdSph) {
		this.numVpOdSph = numVpOdSph;
	}

	public String getNumVpOiCyl() {
		return numVpOiCyl;
	}

	public void setNumVpOiCyl(String numVpOiCyl) {
		this.numVpOiCyl = numVpOiCyl;
	}

	public String getNumVpOiEje() {
		return numVpOiEje;
	}

	public void setNumVpOiEje(String numVpOiEje) {
		this.numVpOiEje = numVpOiEje;
	}

	public String getNumVpOiSph() {
		return numVpOiSph;
	}

	public void setNumVpOiSph(String numVpOiSph) {
		this.numVpOiSph = numVpOiSph;
	}

	public String getNumAddOdAvl() {
		return numAddOdAvl;
	}

	public void setNumAddOdAvl(String numAddOdAvl) {
		this.numAddOdAvl = numAddOdAvl;
	}

	public String getNumAddOdAvp() {
		return numAddOdAvp;
	}

	public void setNumAddOdAvp(String numAddOdAvp) {
		this.numAddOdAvp = numAddOdAvp;
	}

	public String getNumAddOiAvl() {
		return numAddOiAvl;
	}

	public void setNumAddOiAvl(String numAddOiAvl) {
		this.numAddOiAvl = numAddOiAvl;
	}

	public String getNumAddOiAvp() {
		return numAddOiAvp;
	}

	public void setNumAddOiAvp(String numAddOiAvp) {
		this.numAddOiAvp = numAddOiAvp;
	}
	
	public String getNumVpOdAvl() {
		return numVpOdAvl;
	}

	public void setNumVpOdAvl(String numVpOdAvl) {
		this.numVpOdAvl = numVpOdAvl;
	}

	public String getNumVpOdAvp() {
		return numVpOdAvp;
	}

	public void setNumVpOdAvp(String numVpOdAvp) {
		this.numVpOdAvp = numVpOdAvp;
	}

	public String getNumVpOiAvl() {
		return numVpOiAvl;
	}

	public void setNumVpOiAvl(String numVpOiAvl) {
		this.numVpOiAvl = numVpOiAvl;
	}

	public String getNumVpOiAvp() {
		return numVpOiAvp;
	}

	public void setNumVpOiAvp(String numVpOiAvp) {
		this.numVpOiAvp = numVpOiAvp;
	}

	public Integer getVersion() {
		return version;
	}

	public void setVersion(Integer version) {
		this.version = version;
	}

	public FiltroEnum getDesFiltro2() {
		return desFiltro2;
	}

	public void setDesFiltro2(FiltroEnum desFiltro2) {
		this.desFiltro2 = desFiltro2;
	}

	public String getUserCreacion() {
		return userCreacion;
	}

	public void setUserCreacion(String userCreacion) {
		this.userCreacion = userCreacion;
	}

	public String getUserModificacion() {
		return userModificacion;
	}

	public void setUserModificacion(String userModificacion) {
		this.userModificacion = userModificacion;
	}

	public Date getFechaCreacion() {
		return fechaCreacion;
	}

	public void setFechaCreacion(Date fechaCreacion) {
		this.fechaCreacion = fechaCreacion;
	}

	public Date getFechaModificacion() {
		return fechaModificacion;
	}

	public void setFechaModificacion(Date fechaModificacion) {
		this.fechaModificacion = fechaModificacion;
	}
	
}